package com.pan.alg.leecode;

/**
 * @author by panstark
 * @description
 * @notice
 * @date 2022/1/19
 */
public class maxProfit {

    /**
     * 假设你有一个数组prices，长度为n，其中prices[i]是股票在第i天的价格，请根据这个价格数组，返回买卖股票能获得的最大收益
     * 1.你可以买入一次股票和卖出一次股票，并非每天都可以买入或卖出一次，总共只能买入和卖出一次，且买入必须在卖出的前面的某一天
     * 2.如果不能获取到任何利润，请返回0
     * 3.假设买入卖出均无手续费
     *
     * 数据范围： 0 \le n \le 10000 , 0 \le val \le 100000≤n≤10000,0≤val≤10000
     * 要求：空间复杂度 O(1)O(1)，时间复杂度 O(n)O(n)
     * @param prices int整型一维数组
     * @return int整型
     */
    public static int maxProfit (int[] prices) {
        int maxProfit = 0;
        // write code here
        for (int i = 0; i < prices.length; i++) {

            for (int j = i+1; j < prices.length; j++) {
                if(maxProfit<prices[j]-prices[i]){
                    maxProfit=prices[j] -prices[i];
                }

            }
        }

        return maxProfit;
    }

    public static void main(String[] args) {
        int[] prices = {8,9,2,5,4,7,1};
        System.out.println(maxProfit(prices));
    }
}
